#pragma once

class ShadedIntersectable : public Intersectable
{
	Intersectable_ptr _flatShaded;
	Scene_ptr _scene;
	Color _specular, _ambient, _emission;
	int _shininess;
	double _reflectance;

public:
	ShadedIntersectable(Intersectable_ptr, Scene_ptr, const Color& specular, int shininess, const Color& ambient, const Color& emission, double reflectance);
	void WhereIntersects(const Ray&, FirstIntersectionResult&);
	void ColorAtIntersection(SecondIntersectionResult&, const Point&, const Ray&);
	Direction NormalAtPoint(FirstIntersectionResult&, const Point&);
	~ShadedIntersectable();
};
